23

» WarCraft 3 / Система Спавнов

Похожие вопросы:

ответ
Спасибо всем за ответы и пояснения! Закрываю флудильню :с
ответ
Ну для блока урона нужно вручать абилку на 100500 хп, лечить юнита, ну а только потом, с помощью таймера на 0.00 сек. убирать абилку и ставить хп сколько было до всего этого дела.
Могу дать свою карту, там есть и детект физ урона без мемхака и блок урона и снижение урона.
ответ
Slashur, вы даете
call CreateUnitAtLoc(GetTriggerPlayer(), udg_ItemID, udg_temp_point, 0)
изменяете на
call CreateUnitAtLoc(GetTriggerPlayer(), udg_ItemID, udg_temp_point, 270)
всего 1 строчку. всего 1 аргумент. с нуля на 270 поменял и все. стандартное ориентация зданий = 270 град, записана в переменную.
хотел чтобы вы сами помучались. пробуй брать гуи,конвентировать в код. сравнивали. пример
статьи читали бы.
ответ
Все не то. Нужна группа юнитов. При смерти юнита узнается к какой группе он принадлежал (через ХТ или структуру). Юнит удаляется из группы. Если после этого группа остается пуста - запускать таймер респавна с коллбэком. Фсе. Никаких "посмотри как в доте", просто здравый смысл.
В коллбеке же запускать рандомно одну из функций создающую стак, передавать в нее ссылку на группу и записывать в эту группу созданных юников.
ответ
quq_CCCP, у меня крипы спавнятся не из одной точки. Крипы спавнятся в лагерях. В каждом лагере есть несколько точек спавна. При каждом спавне выбирается рандомная точка спавна из рандомного лагеря. Так что с реалистичностью у меня нет проблем.




        local data = {}

        for _, value in pairs(Creep) do
            if type(value) == "table" and value.round ~= nil then
                if data[value.round] == nil then
                    data[value.round] = {}
                end

                table.insert( data[value.round], value )
            end
        end

        for key, value in pairs(data) do
            local i = math.random(1, #value)

            name        [key] = value[i].name
            stylizedName[key] = value[i].stylizedName
            tip         [key] = value[i].tip
            prepare     [key] = value[i].prepare
            count       [key] = value[i].count
            limit       [key] = value[i].limit
            spawnCamp   [key] = value[i].spawnCamp
            startSound  [key] = value[i].startSound
            endSound    [key] = value[i].endSound
            pool        [key] = value[i].pool

            BJDebugMsg('Round ' .. key .. ': ' ..name[key])
        end

23

» WarCraft 3 / Типы юнитов

Похожие вопросы:

ответ
Вопрос в том, что мне делать с ней при каждом новом присвоении.
Ничего
я не могу понять, глобальная она или локальная
Почитайте про локальные переменные. Статьи тоже будут полезны.
Не знаю, не понимаю, что лучше, или оба, но в какой последовательности?
Я тоже ничего не понимаю, когда не вижу кода.
ответ
SirDragdord:
Да, только это. У меня карта - арена и не хочется, чтобы юниты спавнились на трибунах или за воротами. А призвать нужно 3 типа юнита.
Берёшь точку под героем, и поляркой создаёшь три точки рядом (либо одну, если это будет удобно).
Типа так
set Type[1] = 'u001'
set Type[2] = 'u002'
set Type[3] = 'u003'
set P1 = позиция кастера
Цикл А от 1 до 3
set P2 = Полярка от P1 на дистанции 40. под углом ( А * 120. )
Боевая единица - Создать 1 юнита типа Type[A] в позиции P2
очистку и удаление точек - по желанию...
Типа как у стандартных призывов
set P1 = позиция кастера
set P2 = Полярка от P1 на дистанции 200. под углом поворота кастера
Боевая единица - Создать 1 юнита типа 'u001' в позиции P2
Боевая единица - Создать 1 юнита типа 'u002' в позиции P2
Боевая единица - Создать 1 юнита типа 'u003' в позиции P2
ответ
Eternal soul,
Способ что предложил я - вы формируете БД и далее циклом пробегаетесь по массиву unit_type_string[i] и сравниваете его с вашей строкой. Если сравнение прошло успешно то по индексу unit_type[i] находите нужного юнита. Конечно конвертировать было бы более проффесионально, но это способ тоже будет работать.
ответ
Вручил шит пехотинца и скрыл.
И ловите приказ я уже выкладывались где то

23

» WarCraft 3 / Как определить главную характеристику героя?

Похожие вопросы:

ответ
8gabriel8, приоритет менять нельзя
стандартный ии использует это поле для контроля юнитов
пишем свой ии в котором вместо приоритета юзаем свою переменную которой можем задавать любое значение
8gabriel8:
Но для меня это путь в Москву через Владивосток
ну если между тобой и Москвой находится Владивосток то иначе никак(а вар3 как раз расположен за Владивостоком)

23

» WarCraft 3 / Очень нужна помощь с триггером

Похожие вопросы:

ответ
  1. а) Создай 2 переменные-массива по типу "боевая единица" (массив - чтобы для каждого игрока, мы ведь за мультиплеер трем, прально?), назови типа MyChampion и MyChampionDummy.
    б) подготовь невидимого героя-пустышку с нужной тебе иконкой, убери ману, если у чемпиона ее нет. Убери ему радиус обзора, убери галочки типа "отмечать на мини-карте" - остальные - опционально.
    В дальнейшем мы будем синхронизировать пустышку и реального чемпиона, создавая видимость одной боевой единицы.
    Итак, наш первый триггер:
в) Отследи первое появление чемпиона, когда это случится - создай для игрока героя-пустышку. Соответственно сделай MyChampion [number of (Owner of trained unit)]= last trained unit, следующей строчкой создай того самого героя-пустышку для (owner of trained unit) и сделай MyChampionDummy = last created unit. Теперь мы прочно связали этих чуваков. Этот же триггер запускает остальные.
г) Отслеживание здоровья. Сделай изначально выключенный цикличный триггер, там, каждые 0.3 секунды. Триггер запускается пунктом в). Каждые 0.3 секунды меняй здоровье героя (чья икона висит, надо чтобы она соответствовала, прально?) в % на здоровье самого чемпиона.
д) пропищи событие, мол, если выбирает игрок своего героя (кликая на иконку) выбирается чемпион
е) убивай героя вместе с чемпионом
ж) отключай триггеры с проверкой и выбором, пока чемпион мертв
з) не забывай обновлять переменную чемпиона с каждым новым чемпионом.
ответ
должен сразу предупредить что делать за тебя никто не будет
теперь по твоим вопросам
  1. чтобы нельзя было кликать скрываешь, даёшь москиты, делаешь видимым
  2. действие проиграть звук и указываешь твою фразу
  3. выбираем всех подходящих(враги,живые) юнитов в радиусе от точки каста и создаём по дамми юниту(юнит без модели, без атаки, с москитами, с нужной способность, время жизни юнита 1 сек) для каждого подходящего юнита приказывая дамми юниту применить нужную способность в подходящего юнита
таким образом каждый дамми юнит применит нужную способность (в твоём случае корни) в 1 подходящего юнита для которого он и был создан а потом исчезнет
  1. система отлова урона
  2. морф юнита либо орбы
всё что я не описал есть в статьях
тебе нужны первые 2 раздела ("Основы" и "Триггеры и объекты")
ответ
В действиях, во вкладке "Герои" находишь "Set Hero level =", потом ставишь "Arithmetic" и делаешь "Hero level - 3".
ответ
Если я правильно помню, можно отследить, становиться ли золото больше определенного значения. Итак:
  • пишем текущее значение в переменную;
  • создаем триггер, который срабатывает, если значение золота становиться больше переменной.
Если триггер сработал:
  • находим разницу;
  • добавляем еще столько же;
  • обновляем переменную;
  • возможно. придется пересоздать триггер.
Также переменную придется обновлять при покупке юнитов, улучшений и прочего, то есть, при трате золота.

23

» WarCraft 3 / Строительство нежити

Похожие вопросы:

ответ
Сделать приказ построить это здание как способность, которая наводится на юнитов.
Ну и когда применили её - например создавать невидимого строителя и приказывать строить на нём.
Старый юнит можно убрать, или делать ему карту путей нулевую, чтобы не мешал строить.
ответ
Все. Я нашел. Оказывается, изменить место расположения иконки можно и без файла "Units/CommandFunc.txt". Просто в способностях можно изменить.

23

» WarCraft 3 / Как стакается способность?

Похожие вопросы:

ответ
Если охото сделать зарыды со счетчиком то тут 2 пути:
  1. Юзать стандартные абилки со счетчиком зарядов, а их только 2 совы охотницы и вспышки орудийного расчета гномов. Увы первая цель декор онли, вторая цель точка онли, на юнита никак, кстати хорошо подходит под кастом блинки, кастуется почти мгновенно, быстрее канала, без всяких рукомаханий.
  2. Использовать N способностей с разными иконками, на которых будет изображен счетчик, изменяя уровень способности или вовсе весть скилл через 'Eneg' (Техника, скилл механика, позволяет изменять поля скиллов) то можно создать скиллы со счетчиком, допустим пока есть заряды у скилла нету кулдауна, скилл последнего заряда имеет кулдаун.
Увы туча ипорта да и найти качественные иконки со счетчиком дело непростое.
ответ
BaHeK, есть вроде
только чукча не читатель
Talgar2, есть 3 варианта
  1. давай абилки которые дают эффект со степенью двойки(например чтобы получить +12 надо дать абилки +8 и +4)
  2. используй баг с итемами
  3. используй мемхак
ответ
Astra, юзай баг с айтемами
не лагает
не требует создания овер дофига абилок (нужен только 1 предмет)
легко удаляется
лучше только мемхак
ответ
Стандартный скилл "Оживший огонь".
ответ
Для начала читаем правила
Затем, новичок самостоятельно сделать эти способности не сможет, если речь идёт о мультиплеере и оптимизированном исполнении.
И тебе лучше обратиться сюда:

23

» WarCraft 3 / Как сделать подобную вещь?

Похожие вопросы:

ответ
  1. тогда сделай при найме героя, чтобы все остальные блокировались для данного игрока.
  2. попробуй тогда сделать условие number of units owned by player matching the codition (matching unit is alive = true) равно 0
ответ
Diazon, все дамики должны быть приатачены к зданию через структуры/хэш/массивы
при смерти просто грузим эти дамики по юниту и удаляем их
лично я бы делал структуру и цеплял её по индексу согласно хэндлу юнита
но так как ты не знаешь таких слов то юзай хэш-таблицы

23

» WarCraft 3 / Редактор Reforged

Похожие вопросы:

ответ
А это что?
(вбил в поиск слово подсветка)
От себя добавлю, для Jass Норм Vscode
Для Lua Vscode или Idea
Всё гуглиться, всё есть

NotePad++ из коробки может более мене Jass подсветить, а если ещё подсветку него добавить, то ещё лучше

23

» WarCraft 3 / Лимит героев и героя

Похожие вопросы:

ответ
Блин, так я пытался раньше сделать через ульту тинкера - превращение в робота или что-то такое. Но суть в том, что способность, которая должна быть у оригинала, остаётся у нового, а старая не добавляется. Делая через триггер добавление способности - она не считается как старая, то есть возможно прокачать её за скилл-поинты.
Ну и когда морф обратно, новая способность удаляется, старая - не добавляется. Через триггеры я пытался делать, но это ооочень сильно глючит и надо очень долго править. Собственно поэтому я и пришёл к мгновенной замене героя на другого, триггерно добавляя нужные способности. т.к у нового героя другие базовые способности, то и получается все без багов. Кроме, собственного, указанного в вопросе.
Более того, пытался делать через пустышку - но не смог сделать отсутствие иконки, а это все портит.
Проблема решена - нашел вопрос со скрытие иконки и ответ на него
ответ
в редакторе триггеров Игрок - Limit Training of Unit Type
ответ
N7 Molot:
SLavyan_NSK:
А без тригеров не как? Как с обычными героями чтобы было.
Ни как, в стандартных картах выставляется лимит героев при установке режима игры:

можно проверить самому, создай новую пустую карту и в триггерах будет стоять эта функция.
ответ
Ограничение на размер кода нет, есть ограничение на кол-во выполняемых операций в приделах одного потока. Все хорошо описано в статье
ответ
была такая проблема, решилась только костылями:
  • при мгновенной смерти большого числа героев часть воскресает немедленно
  • стоят проверки, если герой все же исчез - создать нового, дав ему все необходимые параметры и предметы

23

» WarCraft 3 / Масштабирование эффекта

Похожие вопросы:

ответ
Ответ. Кроме вычислительного предела есть еще лимит создания новых потоков. Оба вида загруженности вызывают характерное падение мощности. Но попытка оценить работу с помощью только одного критерия будет заведомо ошибочной.

23

» WarCraft 3 / Подскажите как сделать способность.

Похожие вопросы:

ответ
Способность сфера замедления + паразит или черные стрелы, но первое не работает на суммонах а последнее на героях...
ответ
Кислотная бомба? Применяешь триггерно после каждой успешной атаки. Или не каждой.
ответ
учить джасс и юзать таймеры
ответ
Блокировать им инвентарь, либо делать для них не юзабельные версии, но с инвентарем проще - 2 уровня инвенаря и все.
ответ
~8gabriel8:
Событие:
Generic unit Умирает
Условие:
(Dying unit) не равно Здание
Level of ability [Пассивка] of (Killing unit) больше 0
Действие:
Игрок - Add gold (тут следовало бы поставить формулу, что количество золота умножается на уровень пассивки или как-то так)

Pain_Greed, пошутил так? Какая-то дичь)

Сделал вот, раз всё равно открыл редактор:

23

» WarCraft 3 / Анимации Атаки

Похожие вопросы:

ответ
тогда лучше всего удалить анимацию, наименее костыльный метод
ответ
8gabriel8:
Вроде ему наоборот надо Spell Throw -> Attack.
с Attack на Spell Throw

zetreisu, открываете модель в mdlvis жмакаете F3, выбераете нужную анимацию, переименовываете, жмакаете Enter и сохраняете модель при выходе.

23

» WarCraft 3 / Как узнать иконку юнита

Похожие вопросы:

ответ
В натуре баг такой? Проверил только что. Улучшение эльфам можно не делать на доспехи. Короче эльфы читеры

23

» WarCraft 3 / Нужна Save\load система

Похожие вопросы:

ответ
Steal nerves:
Мне не нужно сохранять героя, в этом то и проблема, так бы я просто скопировал чужую наработку.
Все, мне помог один очень хороший человек.
ответ
Ну что пацаны Datamanager ?
Дам подсказку, смотреть на систему ливов и сыгранный игр, там переменная сама инкрементируется за каждый запуск игры, и сама подгружается, но надо включить локальные файлы и сделать привязку к нику и зашифровать данные, ибо иначе тут всё в открытом виде, можно сбрасывать значение

23

» WarCraft 3 / Видимость спецэффекта

Похожие вопросы:

ответ
Спецэффекты - advanced filter - белая маска, начиная со цвета 0 0 0 и 50% прозрачности и заканчивая таким же.
ответ
в чем редактор вкв3 отличается от редактора ск2 - к сожалению, в вк3-шном эдиторе не удастся отловить все данные.
если ты скажешь, что конкретно делает твой спелл, тебе могут подсказать более легкий вариант исполнения
насчет спецэффектов - утечка решается просто
  1. создаешь точку, если спец на земле. если спец на юните, точка не требуется.
  2. собсно воспроизводишь спец
  3. и сразу его удаляешь. спец удалится тогда, когда доиграет до конца его анимация
  4. кастом скриптом удаляешь точку, если 1 часть 1 пункта актуальна
ответ
Было на вин 10, проверь апдейты винды и драйверов, переставь или откатись - должно помочь.

23

» WarCraft 3 / Фильтры

Похожие вопросы:

ответ
PT153:
Попробуй вообще убрать SetDayNightModels в main.
так не пойдет
8gabriel8:
Потому что несуществующая модель и невидимая вроде по-разному обрабатываются.
одинаково

короче, нашел решение проблемы
проблема в том, что в варкрафте кое какие криворукие программисты забабахали офигенную логику освещения , из-за которых фильтры оверлея берут за основу освещение в точке x=0. y=0. z=0. карты, если там нет освещения значит фильтр думает что и он тоже должен без освещения, решение данной проблемы является расположение модели с источником освещения по координатам в точном центре карты (включая z) и виженом для игрока в данной точке
оригинал темы с решением проблемы, а так же тест карта с моделью освещения по ссылке
ответ
Невозможно, можно наложить 50% прозрачности на серый цвет - но это не сделает их бесцветными, нужно редактировать модели.
ответ
NazarPunk, ну, чтобы рассеивание заклинаний действительно рассеивали их.
Если они сделаны триггерно
И чтоб похищение магии тоже работало корректно
code
library BuffRemover initializer brInit uses CreekKeepersNeptulonShadow, HashId

    private nothing bfActions (){ 
        unit u = GetEnumUnit()
        integer id = GetUnitUserData(u)
        integer bon = LoadInteger(HT, id, BlessingOfNeptulon_hid)
        integer bi
        
        //Благословение Нептулона (рассеивание/окончание)
        if (bon > 0) and (GetUnitAbilityLevel(u, 'NSe1') <= 0) and (GetUnitAbilityLevel(u, 'NSe2') <= 0) and (GetUnitAbilityLevel(u, 'NSe3') <= 0){
            bonStateDel(u, bon)
        }
        
        //Благословение Нептулона (похищение магии)
        if (bon <= 0) and ((GetUnitAbilityLevel(u, 'NSe1') > 0) or (GetUnitAbilityLevel(u, 'NSe2') > 0) or (GetUnitAbilityLevel(u, 'NSe3') > 0)) {
            if GetUnitAbilityLevel(u, 'NSe1') > 0 {bi = 1}
            if GetUnitAbilityLevel(u, 'NSe2') > 0 {bi = 2}
            if GetUnitAbilityLevel(u, 'NSe3') > 0 {bi = 3}
            bonStateAdd(u, bi)
        }
            
        u = null
    }
    
    private nothing brActionsStart(){
        ForGroup(allUnits, function bfActions)
    }
    
    private nothing brInit (){
        TimerStart(CreateTimer(), 0.25, true, function brActionsStart)
    }

endlibrary
    
UPD:
Изменил с помощью фильтров. Получилось так:
code2
library BuffRemover initializer brInit uses CreekKeepersNeptulonShadow, HashId
    
    
    //Фильтры
    private boolean fBoN_end (){
        return (LoadInteger(HT, GetUnitUserData(GetFilterUnit()), BlessingOfNeptulon_hid) > 0) and (GetUnitAbilityLevel(GetFilterUnit(), 'NSe1') <= 0) and (GetUnitAbilityLevel(GetFilterUnit(), 'NSe2') <= 0) and (GetUnitAbilityLevel(GetFilterUnit(), 'NSe3') <= 0)
    }
    
    private boolean fBoN_abd (){
        return (LoadInteger(HT, GetUnitUserData(GetFilterUnit()), BlessingOfNeptulon_hid) <= 0) and ((GetUnitAbilityLevel(GetFilterUnit(), 'NSe1') > 0) or (GetUnitAbilityLevel(GetFilterUnit(), 'NSe2') > 0) or (GetUnitAbilityLevel(GetFilterUnit(), 'NSe3') > 0))
    }
    //Фильтры


    //Функции
    private nothing BoN_end (){ 
        bonStateDel(GetEnumUnit(), LoadInteger(HT, GetUnitUserData(GetEnumUnit()), BlessingOfNeptulon_hid))
    }
    
    private nothing BoN_abd (){ 
        integer bi
        unit u = GetEnumUnit()
        if GetUnitAbilityLevel(u, 'NSe1') > 0 {bi = 1}
        if GetUnitAbilityLevel(u, 'NSe2') > 0 {bi = 2}
        if GetUnitAbilityLevel(u, 'NSe3') > 0 {bi = 3}
        bonStateAdd(u, bi)
        u = null
    }
    //Функции
    
    
    private nothing brActions(){
        group g = CreateGroup()
        
        //Благославление Нептулона (рассеивание/окончание)
        GroupEnumUnitsInRect(g, bj_mapInitialPlayableArea, function fBoN_end)
        ForGroup(g, function BoN_end)
        GroupClear(g)
        
        //Благославление Нептулона (похищение магии)
        GroupEnumUnitsInRect(g, bj_mapInitialPlayableArea, function fBoN_abd)
        ForGroup(g, function BoN_abd)
        GroupClear(g)
        
        DestroyGroup(g)
        g = null
    }
    
    private nothing brInit (){
        TimerStart(CreateTimer(), 0.25, true, function brActions)
    }

endlibrary
Так норм или можно еще оптимизировать?
ответ
Эмм как насчет глобальных переменных, т.к в фильтрах ты не создаешь условия а только делаешь проверки, без разрыва потока вейтами, то глобалки доступное и изящное решение.
ответ
github.com/Bergi-bear/TimberSawWar/blob/master/src/DamageSystem.... - все мои отловы урона примерно так выглядят
Мой код не образцовый, но там легко разобраться - github.com/Bergi-bear когда нет обвесок

Не знаю что ты имеешь в виду под фильтрами золота опыта и приказов
для золота и опыта подойдёшь блок github.com/Bergi-bear/SF/blob/master/src/UnitDead.lua - смерти юнита
Для приказов блок SpellCast, но это есть отдельной темой - xgm.guru/p/wc3/ability-cast

23

» WarCraft 3 / Рельеф / Вода / Склон с водой

Похожие вопросы:

ответ
quq_CCCP, пробовал, но что-то не получилось. вставил войска вокруг рудника, и рабы не могли войти в внутрь. Но это не из-за этого.
Все выяснил в чем дело.
нашел ответ
Сначала не понимал, почему вообще не хотело работать это. Везде тыкал, и проверял функцией, и дебагом выводил на экран. Абсолютно везде говорило, что можно передвигаться работникам (даже в воде).
Теперь врубился, почему так было. Нужно было создать блокиратор пути с PATHING_TYPE_PEONHARVESTPATHING. Было два варианта. Либо нарисовать "текстурку + декор" или через "триггеры". Хотя нарисовать текстуру в фотошопе как в статье xgm.guru/p/wc3/pathing-alternate мог, но не знал какого цвета, в статье не показано какого цвета тип PATHING_TYPE_PEONHARVESTPATHING. Или через триггеры см. карту xgm.guru/p/wc3/181384
Хотя создать блокиратор это было полбеды, нужно было понять почему не работает. Работники бегают по участку, то не бегают. Фиг поймешь. Этого можно было бы не заметить (в своей карте пришлось участок визуально рельефом приукрасить, чтобы мог отличать), чтобы понаблюдать. Потом заметил, что вурдалак неся срубленные деревья домой, начал обходить.
Работники когда идут добывать ресурсы, блокиратор их впускает (бывает и не хочет впускать). Но как только они добудут ресурсы, то получат приказ "resumeharvesting" и побегут домой. Тогда встречают в блок. И придется обходить участок. Правильно делают вурдалаки, хотя не всегда. А вот рабы орков и Альянса не правильные какие-то. Они встанут у границы, постоят 2-5 секунд. И походят у границы (туда-сюда), и находят как-будто бы "невидимую" щель, и все по одному входят.
Хотя это работает немного криво (у меня). Работники не хотят обходить участок, это раз. Во-вторых, работников могут впустить. то могут выпустить. Не понятно, что такое.
Насчет светлячков, их даже рассматривать не стал, так как добывают на одном месте.
см. карту PEONHARVESTPATHING

23

» WarCraft 3 / Постоянно вылетает карта

Похожие вопросы:

ответ
В этом архиве ищи свои скиллы, в [скобках] смотри нужный ID.
ответ
Halian Izverg:
Может, все дело в переменных? Попробуй в настройках поставить галочку копировать переменные вместе с триггерами или, если не сработает для твоего глючного редактора, попробуй скопировать переменные вручную перед триггерами.
ответ
Стас Орлов:
Всё, я разобрался кажеться

23

» WarCraft 3 / Анимации

Похожие вопросы:

ответ
Для аттачей необходимо использовать способность Tree of Life upgrade ability (Atol), видна только в JNGP, но при помощи некоторых манипуляций можно и в Reforged увидеть.
Альтернатив не так много, о них уже сказал Extremator.
Для этого берутся либо ауры (тогда в них ещё можно и специфический бафф накладывать на носителя), либо абилки от "когтей атаки" и "кольца защиты" (дающие +атаки и +защиту, в них точно так же как в ауре настраиваются точки крепления и модели)
Использовать способность Shpere (Asph) или аналоги у духов возмездия не рекомендуются.
ответ
У тебя нет файла дорожки анимации для этй звуковой дорожки
А инструмент они не предоставили

23

» WarCraft 3 / Ошибка краша игры.

Похожие вопросы:

ответ
PyCCKuu_4eJl, а причем тут аура торнадо? Если стан это стан, особый флаг + приказ смотреть на источник стана.
Не пойму почему не молоток бурь а аура торнадо?
ответ
Кажеться я разобрался с крашем и десинком, хотя я так не до конца понял почему именно из-за этих двух вещей происходит такая фигня.
  1. Краш при падении артефакта скорее всего связан с лидербордом где отображаются результаты розыгрыша. Каждую секунду у лидерборда меняется название мб краш как-то связан с этим. По крайней мере этим можно объяснить почему игроков крашило по очереди с некоторой периодичностью. Теперь убрав этот лидерборд и откатав 30+ игр никаких крашей при падении артефактов обнаружено не было. Но конечно хотелось бы понять как лидерборд мог вызвать такие странные краши. Мб конфликт с локальными мультибордами?) Хотя я хз.
  2. Десинхрон в начале волны с 1-м боссом. Я просмотрел 6 реплеев с игр когда вылетали игроки и выяснил что каждый раз это происходило когда их атаковал танк на котором приезжает босс. Танк имеет способность москиты и Тип Атаки - мгновенный и Тип Урона - мили. Мб какое-то сочетания настроек атаки и москитов давало такой странный результат.
ответ
~8gabriel8:
Достаточно низкие настройки?
Увеличил размер с 100х100 до 128х128 и пересчитал границы у модели:
ответ
kittysatalyash:
8gabriel8, Ландшафт собственно не пострадал, просто размеры карт кардинально не совпадают и мне самому проще как-то не по человечески копировать ландшафт и декор, так что вот такие пироги
RiderOfBalance, Ок, я нашёл открытый дрп и скопировал от туда триггеры и заменил. Та открытая дрп работает, на своём я ещё не пробовал, но надеюсь что всё будет работать.
RiderOfBalance, я поставил триггеры с открытой соты, всё ещё не работает, так же я попробовал вообще удалить триггеры и так же всё ещё не работало. Следовательно, скорее всего триггеры тут не причём...
war3map.j:1: parse error
war3map.j:1: Statement outside of function
war3map.j:1: Statement outside of function
war3map.j:1: Statement outside of function
war3map.j:2: Statement outside of function
war3map.j:2: Statement outside of function
war3map.j:3: Statement outside of function
war3map.j:3: Statement outside of function
war3map.j:3: Statement outside of function
war3map.j:4: Statement outside of function
war3map.j:4: Statement outside of function
war3map.j:7: Undeclared variable cj_tmpgr_copy_nw509ert7
war3map.j:9: parse error
war3map.j:9: Statement outside of function
Ниже скриншот с начало .j кода.
Это лишь малая часть проблем, так же в коде есть переменные, чьи имена начинаются с цифр (что недопустимо во всех языках программирования, если мне не изменяет память).
Собственно потому, в .j миллиард ошибок, можешь приложить оригинал карты? Потому что версию, что ты загрузил имеет просто умертвлённый скрипт.

23

» WarCraft 3 / Описание заклинания/эффекта

Похожие вопросы:

ответ
У тебя в поле 2 заклинания?
Просто это одна из способностей, у которой такая фигня получается. У тебя в поле заклинания должно быть два значения. Производная от печати преисподней и от Печати преисподней (слуга)
ответ
ответ
Хозяин Миров, боже
делаем дами ауру
потом всем у кого есть баф ауры даём бонусы скрытым спелбуком
когда баф исчезает убираем бонусы

23

» WarCraft 3 / Помогите с триггером

Похожие вопросы:

ответ
Зачем 2 событие там?
1 Паладин жизнь становится равно или меньше 50
Д Б.е. - отдать приказ без цели - горный король удар грома.
ответ
необязательно делать два триггера, можно сделать 1 с этим событием с условием (Владелец (Переключающий юнит)) равно Нейтрально-враждебный а остальные условия поместить в отдельный if/then/else multiple conditions, хз как называется этот пункт в русском редакторе, но он где-то в первых 15 строчках.
Хотя знаешь мне лень писать, вот так можно сделать в твоём случае

Если ты хочешь посылать куда-то юниты, то лучше давай их другому игроку, не нейтрально-враждебному
ответ
триггерно даём и удаляем спел превратится в ворона после чего можно менять высоту юнита
ответ
тему нормально бы назвали бы
что такое Переключающий юнит??
В русских триггерах переключающий юнит (в англ. триггерах triggering unit) - это юнит, на которого ссылается триггер. Эти все переменные зависят от событии. Вот в событий - юнит умирает, две переменные - это умирающий юнит (Dying unit), и убийца (Kiling unit). Конкретно триггер ссылается на умирающего юнита, то есть здесь
умирающий юнит = переключающий
Есть много похожих событий, где встречается переключающий.
Например, в событий "юнит применяет способность" выделяются две переменные "кастер" (англ. Casting unit) и "юнит-цель" (Target unit of ability being cast). Конкретно триггер ссылается на кастера.
кастер = переключающий
или например в событий юнит - получил приказ
выделяется переменная "юнит-получил приказ" (ordered unit) и цель (если есть, а то есть приказы без цели)
юнит, получивший приказ = переключающий
часто удобно еще владельца переключающего юнита находить
обычно пишут владелец переключающего юнита, а надо бы trigger player (переключающий игрок)
юзай дебаг (см. карту дебаг)
как называется юнит который начал строительство?
я хочу убить юнита который начал строительство
в событии - юнит начинает строительство
есть переменная : строящее здание (Consrtucting structure)
в событии - юнит завершает строительство
переменная завершенная постройка (Consrtuctied structure).
Конкретно события ссылаются на строящее здание, то есть переключающий юнит = здание. А вот строителя нельзя найти.
и мне нужно чтобы здание, строительство которого было начало мгновенно построилось!
но когда я ставлю триггерно
Боевая единица- Определить [Сооружает структуру] процесс строительства [100%]
у меня действительно ставиться полоса строительства как 100% но само строительство не заканчивается. :(
получается стоит стройка здания которое построилось на 100%
Ты про ту функцию
native UnitSetConstructionProgress takes unit whichUnit, integer constructionPercentage returns nothing
Боевая единица - Set Building Construction Progress
чего-то тоже у меня не работает эта функция совсем, может не правильно юзаю, на форуме мало что нашел.
чего-то тоже у меня не работает эта функция совсем, может не правильно юзаю, на форуме мало что нашел.
Короче заработало.
Если рабочий будет строить, а ты в это время воспользуешься этой функции по "событию - юнит начинает строительство" ничего не сработает. Странно как-то. Нужно добавлять 100% после некоторого времени. Спустя 0,01 секунду.
Убрать рабочего после того как в начале возведет фундамент, так да, полоска в 100% то останется =(( Полоска убирается, если рабочий придет и достроит (хотя уже достраивать нечего =( , полное хп )
У рабочего есть способность "ремонтировать". Там надо смотреть.
Советую так:
Юнит - начинает строительство
действие - ждать 0,01 секунд
действие - Боевая единица- Определить [Сооружает структуру] процесс строительства [100%]
следующий момент
юнит - завершает строительство
действие - удалить или убить строителя
Кстати в событий "юнит завершает строительство" и "юнит завершает строительство" нет ссылки на строителя. Только на построенное только что здание. Но эта проблема решаема. Нужно отслеживать приказ строителя, только на форуме одному делал наработку найти не могу, не пойму как делал
как отследить строителя, это делается по приказу
851994 (buildmenu): Приказ (без указания цели), открывающий меню строительства воина, способного возводить здания.
событие - юнит отдал приказ без цели
условие - целочисленное (id приказ) = 851994
приказ 851994 почему-то не отслеживается, он лишь позволяет открыть меню строительства. не катит. пробую тогда потом другое выбираем постройку в меню строительства, и строитель бежит строить.
событие - юнит отдал приказ цель
условие - классификация цели = здание или дерево
казалось бы все так, но недостаток в том, что он может за это время, пока бежит к точке строительства, передумать по желанию игрока. Поэтому надо смотреть, заранее там кучу событий и условии, короче проверок что если там пойдет не так
событие - юнит отдал приказ цель
условие - приказ = repair
можно использовать приказ repair. Короче от способности "ремонтировать" При строительстве и ремонте у орков и людей есть такая фишка. А вот у эльфов нет. Недостаток конечно. И еще рабочий может пойти ремонтировать здание, однако тут срабатывает приказ "smart", который равнозначен "repair". Когда строит/ремонтирует работник можно выяснить текущий приказ. У работника в этот может приказ repair а у светлячка при строительстве id здания, а при ремонте у светлячка id от "обновление".
ответ
Для начала создаешь способность вампиризма, например с 4 уровнями.
1 уровень - 25%
2 уровень - 50%
3 уровень - 75%
4 уровень - 100% вампиризма.
Если нынешнее здоровье героя деленное на максимальное здоровье этого же героя < 0,25 - делаем четвертый уровень способности.
Если нынешнее здоровье героя деленное на максимальное здоровье этого же героя < 0,50 - даем третий уровень способности
И т.д.

23

» WarCraft 3 / Описание

Похожие вопросы:

ответ
Я у себя просто сократил до
|c007f7f7f- пpoдaвaeмый|r
и
|c007f7f7f- иcпoльзyeмый|r
ответ
Нет, нельзя. Только те поля, что устанавливаются через редактор объектов или .slk таблицу.
ответ
Я тоже помню, и там точно был задействован я, и ещё видеопрохождение снимали
Я часть этой системы перенёс себе xgm.guru/p/robotdef

А вот и оригинал
ответ
Нет, вы просто формируте сложно вопросы, и не пользуетесь поиском
Открываем каском рефордж и выдёргивает близард и коммон, смотрим радуется
или вот
ответ
Ctrl+Enter внутри текстового блока